/*============================================================================*/
/*                        Tortoise Team			                              */
/*============================================================================*/
/*                        OBJECT SPECIFICATION                                */
/*============================================================================*
* C Include:        %HAL_RCA_Camera.h%
* Instance:         RPL_1
* %version:         1.0 %
* %created_by:      Andres Torres Garcia %
* %date_created:    Fri Oct 12 12:41:01 2012 %
*=============================================================================*/
/* DESCRIPTION : Header file for the hardware layer of the RCA Camera.        */
/*============================================================================*/
/* FUNCTION COMMENT : Contains the exported variables, defines and functions  */
/*					  of the hardware layer of the RCA Camera                 */
/*                                                                            */
/*============================================================================*/
/*                               OBJECT HISTORY                               */
/*============================================================================*/
/*  REVISION |   DATE      |                               |      AUTHOR      */
/*----------------------------------------------------------------------------*/
/*  1.0      | 12/10/2012 | SAR/SIF/SCN_xxx               | Andres Torres     */
/* Integration under Continuus CM                                             */
/*============================================================================*/

#ifndef HAL_RCA_CAMERA_H                               /* To avoid double inclusion */
#define HAL_RCA_CAMERA_H

/* Includes */
/* -------- */

#include "stdtypedef.h"

/* Exported types and constants */
/* ---------------------------- */

/* Types definition */
/* typedef */

/*==================================================*/ 
/* Declaration of exported constants                */
/*==================================================*/ 
/* BYTE constants */

#define NUM_LINES_CAPTURE	8
#define PIXELS_PER_LINE		55

/* WORD constants */

/* LONG and STRUCTURE constants */


/*======================================================*/ 
/* Definition of RAM variables                          */
/*======================================================*/ 
/* BYTES */

extern T_UBYTE ub_isVertSync;
extern T_UBYTE ub_LinesCaptured;

extern T_UBYTE ub_TotalPix[NUM_LINES_CAPTURE];

/* WORDS */

extern T_SWORD sw_LinePixels[NUM_LINES_CAPTURE + 1][PIXELS_PER_LINE];

/* LONGS and STRUCTURES */

/*======================================================*/ 
/* close variable declaration sections                  */
/*======================================================*/ 

/* Exported functions prototypes and macros */
/* ---------------------------------------- */

/* Functions prototypes */

extern void vfnGetImage(void);

extern void HAL_vfnInitRCA_Capturing(void);
extern void HAL_vfnSelectPredefLinesToCapture(void);
extern void HAL_vfnStopCapturing(void);
extern void HAL_vfnStartCapturing(void);
extern void HAL_vfnDeselectLine(T_UBYTE line);
extern void HAL_vfnSelectLine(T_UBYTE line);

/* Functions macros */

/* Exported defines */

#define TOTAL_LINES			240
#define LINES_OF_RESOLUTION 250		// Number of total lines in picture
#define HORIZ_SYNC_THRES	0x10	// ADC value of horizontal low pulse
#define VERTI_SYNC_THRES	0x68	// ADC value of black threshold level 0x69

// Location of useful lines of picture
#define A_c					5
#define B_c					35
#define C_c					65
#define D_c					95
#define E_c					125
#define F_c					155
#define G_c					185
#define H_c					235

#endif